//
//  LGSAndGate.h
//  LogicSim
//
//  Created by Jeremy Pereira on 04/04/2012.
//  Copyright (c) 2012 Jeremy Pereira. All rights reserved.
//

/*!
 *  @file LGSSwitch.h
 *  @author Jeremy Pereira
 *  @brief Definitions associated with a simple switch
 */
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#import "LGSNode.h"

/*!
 *  @brief models a switch.
 *
 *  The basic switch.  Models a simple switch where input 2 selects between 
 *  input 0 and input 1.  If input 2 is false, select input 0 else select 
 *  input 1.
 *
 *  The inputs are labelled a, b and select.  The output is labelled out.
 */
@interface LGSSwitch : LGSNode

/*!
 *  @brief The name of the select input.
 *  @return The name of the select input.
 */
+(LGSName*) selectName;
/*!
 *  @brief The name of the a input.
 *  @return The name of the a input.
 */
+(LGSName*) aName;
/*!
 *  @brief The name of the b input.
 *  @return The name of the b input.
 */
+(LGSName*) bName;
/*!
 *  @brief The name of the output.
 *  @return The name of the output.
 */
+(LGSName*) outputName;

@end
